From: Carlos Garnacho Date: Fri, 14 Jul 2017 20:23:53 +0000 (+0200) Subject: layout: Allow adding already parented actors for chrome tracking X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~236 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=74bd009c86a2c8ca765d8d772a312fe0eec8abb2;p=gnome-shell.git layout: Allow adding already parented actors for chrome tracking let trackChrome accept actors that are not children of chrome actors. this will be useful for the MetaCloseDialog in gnome-shell, which is already included in the MetaWindowGroup, but needs to be tracked as chrome for the dialog to receive pointer events on X11. https://bugzilla.gnome.org/show_bug.cgi?id=762083 --- diff --git a/js/ui/layout.js b/js/ui/layout.js index 4c11e1d7a..ebf09c24b 100644 --- a/js/ui/layout.js +++ b/js/ui/layout.js @@ -769,8 +769,7 @@ const LayoutManager = new Lang.Class({ // @actor: a descendant of the chrome to begin tracking // @params: parameters describing how to track @actor // - // Tells the chrome to track @actor, which must be a descendant - // of an actor added via addChrome(). This can be used to extend the + // Tells the chrome to track @actor. This can be used to extend the // struts or input region to cover specific children. // // @params can have any of the same values as in addChrome(), @@ -783,10 +782,9 @@ const LayoutManager = new Lang.Class({ ancestor = ancestor.get_parent(); index = this._findActor(ancestor); } - if (!ancestor) - throw new Error('actor is not a descendent of a chrome actor'); - let ancestorData = this._trackedActors[index]; + let ancestorData = ancestor ? this._trackedActors[index] + : defaultParams; if (!params) params = {}; // We can't use Params.parse here because we want to drop